const app = getApp()
import { makePhoneCall } from "./http.js"
import { HiddenCall } from '../request/api.js'
const request = new HiddenCall
/**
 * 设置全局拨打关系
 * @author 王磊
 * date 2019-3-27
 * @param {*} makePhoneCall 设置拨打关系函数
 * @param {*} HiddenCall 请求数据函数
 * @param {*} data 组件混合当前页面的data
 * @param {*} msgCallCode 消息列表房客源编号code
 * @param {*} _this 拨打电话当前的this
 */
class CallNexus {
  constructor(data) {
    this.roomerData = data
  }
  /**
   * 数据整理
   * @author 王磊
   * date 2019-3-27
   * @param {*} resourceCode 房客源code
   * @param {*} page 从哪进入的跟进页路由
   * @param {*} utype 房客源类型
   */
  dataSorting(called, _this) {
    // 判断消息列表还是房客源列表，获取房客编号
    let resourceCode = this.roomerData.model ? (this.roomerData.model.customerCode ? this.roomerData.model.customerCode : this.roomerData.model.houseCode) : this.roomerData.msgCallCode ? this.roomerData.msgCallCode : ''
    // 判断消息列表还是房客源列表，获取房客源目录
    let page = this.roomerData.msgPage ? this.roomerData.msgPage : this.roomerData.model ? (this.roomerData.model.houseCode ? 'house_list' : 'customer_list') : ''
    // 判断消息列表还是房客源列表，获取房源还是客源
    // let utype = this.roomerData.phoneUtype ? this.roomerData.phoneUtype : this.roomerData.model.utype
    // 调用拨打电话接口
    CallNexus.directCall(called, resourceCode, _this, page)
  }
  static directCall = (called, resourceCode, _this, page) => {
    // 调用接口拨打电话
    request.directCall({ called, resourceCode }).then(res => {
      if (res.statusCode === 200) {
        // 赋值callid和手机号
        let callId = res.result.callId
        app.phonenumber = res.result.switchNumber
        // 微信api调用拨打
        makePhoneCall().then(res => {
          // 检测是否填写跟进
          request.followFinished().then((res) => {
            // 汇集数据
            let model = {
              callId: res.result.callId, // 赋值callid
              resourceCode: res.result.resourceCode, // 房客编号
              page: page, // 拨打电话目录
              utype: res.result.utype, // 房客
              id: res.result.id
            }
            wx.redirectTo({
              url: `../follow_describe/index?model=${JSON.stringify(model)}`
            })
          })
        }).catch(() => {
          _this.clickMask()
        })
      }
      res.message !== "成功" ? wx.showToast({
        title: res.message,
        icon: 'none',
        success() {
          _this.clickMask()
        }
      }) : ""
    })
  }
}

module.exports = {
  CallNexus: CallNexus
}